package com.pine.manager.core;

import com.pine.common.trigger.TriggerType;
import lombok.AllArgsConstructor;
import lombok.Getter;

/**
 * <p>
 * 触发器类型枚举
 * </p>
 *
 * @author pine manage
 * @since 2024-08-13
 */
@AllArgsConstructor
@Getter
public enum TriggerTypeEnum implements TriggerType {

    // -- sys_config 系统配置相关触发器
    SYS_CONFIG_SAVE_OR_UPDATE("新增或修改系统配置"),
    SYS_CONFIG_DELETE("删除系统配置"),
    SYS_CONFIG_REFRESH_CACHE("刷新系统配置缓存"),

    // -- 用户认证相关触发器
    SYS_USER_LOGIN("用户登录"),
    SYS_USER_LOGOUT("用户登出"),

    // -- sys_user 用户相关触发器
    SYS_USER_SAVE_OR_UPDATE("新增或修改用户"),
    SYS_USER_DELETE("删除用户"),
    SYS_USER_RESET_PASSWORD("用户重置密码"),
    SYS_USER_UPDATE_STATUS("用户修改状态"),
    SYS_USER_ASSIGN_ROLE("用户分配角色"),

    // -- sys_role 角色相关触发器
    SYS_ROLE_SAVE_OR_UPDATE("新增或修改角色"),
    SYS_ROLE_DELETE("删除角色"),
    SYS_ROLE_UPDATE_STATUS("修改角色状态"),
    SYS_ROLE_GRANT_USER("角色授权用户"),
    SYS_ROLE_REVOKE_USER("角色撤销用户"),
    // 角色分配菜单
    SYS_ROLE_ASSIGN_MENU("角色分配菜单"),

    // --sys_dict 字典相关触发器
    SYS_DICT_SAVE_OR_UPDATE("新增或修改字典"),
    SYS_DICT_DELETE("删除字典"),
    // --sys_dict_item
    SYS_DICT_ITEM_SAVE_OR_UPDATE("新增或修改字典项"),
    SYS_DICT_ITEM_DELETE("删除字典项"),

    // --sys_dept 部门相关触发器
    SYS_DEPT_SAVE_OR_UPDATE("新增或修改部门"),
    SYS_DEPT_DELETE("删除部门"),

    // --sys_menu 菜单相关触发器
    SYS_MENU_SAVE_OR_UPDATE("新增或修改菜单"),
    SYS_MENU_DELETE("删除菜单"),

    // 动态线程池更新
    DYNAMIC_THREAD_POOL_REFRESH("动态线程池更新"),

    // 审批相关
    SYS_APPROVAL_SAVE_OR_UPDATE("审批申请新增或修改"),
    SYS_APPROVAL_DELETE("审批申请删除"),
    SYS_APPROVAL_APPROVE("审批申请审批"),
    SYS_APPROVAL_REJECT("审批申请驳回"),
    SYS_APPROVAL_CANCEL("审批申请取消"),
    SYS_APPROVAL_COMPLETED("审批申请完成"),
    SYS_APPROVAL_HISTORY_SAVE("审批申请历史新增"),
    ;

    private final String desc;
}
